package ve.edu.ucla.laboratorio.dals.actividades;

import ve.edu.ucla.laboratorio.dals.R;
import ve.edu.ucla.laboratorio.dals.Utilidades;
import ve.edu.ucla.laboratorio.dals.modelo.Autenticacion;
import ve.edu.ucla.laboratorio.dals.modelo.EstadoAutenticacion;
import ve.edu.ucla.laboratorio.dals.modelo.Permiso;
import ve.edu.ucla.laboratorio.dals.modelo.Preferencias;
import ve.edu.ucla.laboratorio.dals.modelo.RepositorioDatos;
import ve.edu.ucla.laboratorio.dals.modelo.RepositorioImagenes;
import ve.edu.ucla.laboratorio.dals.modelo.RepositorioOperarios;
import ve.edu.ucla.laboratorio.dals.modelo.RepositorioPropietarios;
import ve.edu.ucla.laboratorio.dals.modelo.RepositorioTransportistas;
import ve.edu.ucla.laboratorio.dals.modelo.RepositorioUnidadesTransporte;
import ve.edu.ucla.laboratorio.dals.modelo.RepositorioUsuarios;
import ve.edu.ucla.laboratorio.dals.modelo.Usuario;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class PrincipalInicio extends Activity {
	@Override
    public void onCreate(Bundle savedInstanceState)
	{
        super.onCreate(savedInstanceState);
	    
        Preferencias preferencias = new Preferencias(this);
		final RepositorioDatos datos = Utilidades.crearRepositorioDatos(preferencias, this);
		RepositorioUsuarios repositorioUsuarios = datos.nuevoRepositorioUsuarios();
		
        final Autenticacion autenticacion = Autenticacion.estadoActual(repositorioUsuarios, preferencias);
		if (autenticacion.getEstado() != EstadoAutenticacion.VALIDO) {
			Logueo.iniciar(this);
			return;
		}

		setContentView(R.layout.principal_inicio);
		
	    Button btnTransportista = (Button) findViewById(R.id.btnTransportista);
	    Button btnPropietario = (Button) findViewById(R.id.btnPropietario);
	    Button btnOperario = (Button) findViewById(R.id.btnOperario);
	    Button btnUnidadT = (Button) findViewById(R.id.btnUnidadT);
	    TextView lblActualizar = (TextView) findViewById(R.id.etiqActualizar);
	    Button btnActualizar = (Button) findViewById(R.id.btnActualizar);
	    TextView lblbalanceN = (TextView) findViewById(R.id.etiqBalanceN);
	    TextView lblbalanceP = (TextView) findViewById(R.id.etiqBalanceP);

	    Usuario datosUsuario = repositorioUsuarios.consultarUsuario(autenticacion.getNombre());
	    Utilidades.asignarTexto(this, R.id.etiqUsuario, datosUsuario.getNombreCompleto());
	    
	    RepositorioImagenes repositorioImagenes = datos.nuevoRepositorioImagenes();
	    Bitmap imagen = repositorioImagenes.consultarImagen(datosUsuario.getFotoId());
	    
	    if (imagen == null) {
	    	((ImageView) findViewById(R.id.imagenLogo)).setImageResource(R.drawable.prueba_not_found_logo);
	    } else {
	    	((ImageView) findViewById(R.id.imagenLogo)).setImageBitmap(imagen);
	    }
	    
	    if (autenticacion.contienePermiso(Permiso.MAYORISTA)) {
	    	Utilidades.asignarTexto(this, R.id.etiqTipo, "Mayorista");
	    	btnUnidadT.setVisibility(View.GONE);
	    	btnPropietario.setVisibility(View.GONE);
	    	btnOperario.setVisibility(View.GONE);
	    	lblActualizar.setVisibility(View.GONE);
	    	lblbalanceP.setVisibility(View.GONE);
	    	btnActualizar.setVisibility(View.GONE);
	    	Utilidades.asignarTexto(this, R.id.etiqBalanceN, "- Bs. 8400.00");
	    } else if (autenticacion.contienePermiso(Permiso.TRANSPORTISTA)) {
	    	Utilidades.asignarTexto(this, R.id.etiqTipo, "Transportista");
	    	btnTransportista.setVisibility(View.GONE);
	    	lblActualizar.setVisibility(View.GONE);
	    	btnActualizar.setVisibility(View.GONE);
	    	Utilidades.asignarTexto(this, R.id.etiqBalanceP, "+ Bs. 8400.00");
	    	Utilidades.asignarTexto(this, R.id.etiqBalanceN, "- Bs. 2600.00");
	    } else if (autenticacion.contienePermiso(Permiso.OPERARIO)) {
	    	Utilidades.asignarTexto(this, R.id.etiqTipo, "Operario");
	    	btnOperario.setVisibility(View.GONE);
	    	btnUnidadT.setVisibility(View.GONE);
	    	btnPropietario.setVisibility(View.GONE);
	    	lblbalanceN.setVisibility(View.GONE);
	    	btnTransportista.setVisibility(View.GONE);
	    	Utilidades.asignarTexto(this, R.id.etiqBalanceP, "+ Bs. 1000.00");
	    } else if (autenticacion.contienePermiso(Permiso.PROPIETARIO)) {
	    	Utilidades.asignarTexto(this, R.id.etiqTipo, "Propietario");
	    	btnOperario.setVisibility(View.GONE);
	    	lblbalanceN.setVisibility(View.GONE);
	    	btnPropietario.setVisibility(View.GONE);
	    	btnTransportista.setVisibility(View.GONE);
	    	lblActualizar.setVisibility(View.GONE);
	    	btnActualizar.setVisibility(View.GONE);
	    	Utilidades.asignarTexto(this, R.id.etiqBalanceP, "+ Bs. 1600.00");
	    }

	    btnActualizar.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				Utilidades.mostrarMensaje(PrincipalInicio.this, "Se ha confirmado la entrega de la carga: 0001");
			}
		});
	    
	    btnTransportista.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				RepositorioTransportistas repositorioTransportistas = datos.nuevoRepositorioTransportistas();
				ListadoTransportistas.iniciar(PrincipalInicio.this,
						repositorioTransportistas.listadoTransportistas());
			}
		});
	    
	    btnPropietario.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				RepositorioPropietarios repositorioPropietarios = datos.nuevoRepositorioPropietarios();
				ListadoPropietarios.iniciar(PrincipalInicio.this, repositorioPropietarios.listadoPropietariosDe(autenticacion.getNombre()));
			}
		});
 
	    btnOperario.setOnClickListener(new View.OnClickListener() {
	    	public void onClick(View v) {
	    		RepositorioOperarios repositorioOperarios = datos.nuevoRepositorioOperarios();
	    		ListadoOperarios.iniciar(PrincipalInicio.this, repositorioOperarios.listadoOperariosDe(autenticacion.getNombre()));
			}
    	});
 
	    btnUnidadT.setOnClickListener(new View.OnClickListener() {
	    	public void onClick(View v) {
	    		RepositorioUnidadesTransporte repositorioUnidades = datos.nuevoRepositorioUnidadesTransporte();
				ListadoUnidades.iniciar(PrincipalInicio.this, repositorioUnidades.listadoUnidadesDe(autenticacion.getNombre()));
			}
	    });
	 }
}
